package com.example.azheng.rxjavamvpdemo.util;

import android.util.Log;

import com.example.azheng.rxjavamvpdemo.bean.BaseObjectBean;
import com.example.azheng.rxjavamvpdemo.bean.userInfo.UserInfo;
import com.example.azheng.rxjavamvpdemo.contant.Constants;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;

/**
 * Time:2020/6/24
 * Author:ypf
 * Description:
 */
public class UserInfoUtils {

    private static String TAG = "UserInfoUtils";

    /**
     * 设置用户已经登录
     */
    public static void setLogged() {
        SharePreferenceUtils.putBoolean(Constants.IS_LOGIN, true);
    }

    /**
     * 设置用户已经登录
     */
    public static void setExitLogin() {
        SharePreferenceUtils.putBoolean(Constants.IS_LOGIN, false);
    }

    /**
     * 设置用户已经登录
     */
    public static boolean getIsLogged() {
        return SharePreferenceUtils.getBoolean(Constants.IS_LOGIN, false);
    }

    /**
     * 保存token
     */
    public static void setToken(String token) {
        SharePreferenceUtils.putString(Constants.TOKEN, token);
    }

    /**
     * 获取token
     */
    public static String getToken() {
        return SharePreferenceUtils.getString(Constants.TOKEN);
    }

    /**
     * 保存用户信息
     */
    public static void setUserInfo(BaseObjectBean<UserInfo> bean) {

        String userInfo = GsonUtils.toJson(bean);
        SharePreferenceUtils.putString(Constants.USER_INFO, userInfo);
    }

    /**
     * 获取用户信息
     */
    public static BaseObjectBean<UserInfo> getUserInfo() {

        String userInfoJson = SharePreferenceUtils.getString(Constants.USER_INFO);
        Log.i(TAG, "UserInfoJson:" + userInfoJson);
        Type type = new TypeToken<BaseObjectBean<UserInfo>>() {
        }.getType();
        Gson gson = new Gson();
        BaseObjectBean<UserInfo> userInfo = gson.fromJson(userInfoJson, type);
        return userInfo;
    }


}
